GDK W32: More flexible modal operation mode
authorРуслан Ижбулатов <lrn1986@gmail.com>
Fri, 11 Aug 2017 07:00:41 +0000 (07:00 +0000)
committerРуслан Ижбулатов <lrn1986@gmail.com>
Sat, 25 Nov 2017 15:44:36 +0000 (15:44 +0000)
commit87103b9a1401bb9d28ee77c39310833f98d9e836
tree0533f6039573733a57eb42b2c0bb0bbb4d4b1a68
parent87673af98ccc805f2e35ae6e40eb6ed6915c3f89
GDK W32: More flexible modal operation mode

Instead of using a boolean to indicate a modal operation being in progress,
use a set of flags, and allow these to be set and unset independently.

Specifically, this allows WM_CAPTURECHANGED handler to only act when a drag-move or
drag-resize modal operation is in progress, and ignore DND (which can also cause
WM_CAPTURECHANGED to be posted). This avoids a crash due to assertion failure when
OLE2 DND code tries to end a modal operation that was already ended by the WM_CAPTURECHANGED
handler.

https://bugzilla.gnome.org/show_bug.cgi?id=786121
gdk/win32/gdkdevicemanager-win32.c
gdk/win32/gdkdnd-win32.c
gdk/win32/gdkevents-win32.c
gdk/win32/gdkglobals-win32.c
gdk/win32/gdkprivate-win32.h